Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system

ABSTRACT

A node associated with an organization may receive a storage identifier for new credit data associated with an individual. A distributed ledger and distributed data sources may be used to share the new credit data with a network of nodes. The node may update a smart contract with the storage identifier for the new credit data. The node may receive, from a particular device associated with the organization, a request for the new credit data. The node may obtain the storage identifier for the new credit data from the smart contract. The node may obtain the new credit data by using the storage identifier to search the distributed data sources. The node may provide the new credit data to the particular device. The node may perform actions to obtain additional new credit data from the distributed data sources or provide the additional new credit data to the distributed data sources.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/662,306 filed Oct. 24, 2019 (now U.S. Pat. No. 11,055,442), which isa continuation of U.S. patent application Ser. No. 16/152,916, filed onOct. 5, 2018 (now U.S. Pat. No. 10,496,850), which is a continuation ofU.S. patent application Ser. No. 15/997,271, filed Jun. 4, 2018 (nowU.S. Pat. No. 10,095,888), the contents of which are incorporated hereinby reference in their entireties.

BACKGROUND

A blockchain is a distributed database that maintains acontinuously-growing list of records, called blocks, that may be linkedtogether to form a chain. Each block in the blockchain may contain atimestamp and a link to a previous block and/or transaction. The blocksmay be secured from tampering and revision. In addition, a blockchainmay include a secure transaction ledger database shared by partiesparticipating in an established, distributed network of computers. Ablockchain may record a transaction (e.g., an exchange or transfer ofinformation) that occurs in the network, thereby reducing or eliminatingthe need for trusted/centralized third parties. In some cases, theparties participating in a transaction may not know the identities ofany other parties participating in the transaction but may securelyexchange information. Further, the distributed ledger may correspond toa record of consensus with a cryptographic audit trail that ismaintained and validated by a set of independent computers.

SUMMARY

According to some possible implementations, a first node may include oneor more memories and one or more processors that are communicativelyconnected to the one or more memories. The one or more processors mayreceive new credit data of an individual that has credit with a firstorganization. A distributed ledger and a set of distributed data sourcesmay be used to share the new credit data with a network of nodes thatare associated with a group of organizations that are permitted toaccess the new credit data. The one or more processors may generate astorage identifier for the new credit data by executing a mappingfunction. The storage identifier may identify a storage location atwhich the new credit data is to be stored within the set of distributeddata sources. The one or more processors may provide the storageidentifier for the new credit data to a smart contract associated withthe individual. The smart contract may be supported by the distributedledger. The one or more processors may broadcast the storage identifierfor the new credit data to the network of nodes to cause a second node,of the network of nodes, to provide the storage identifier for the newcredit data to a copy of the smart contract that is accessible to thesecond node. Broadcasting the storage identifier may permit the secondnode, based on a request from a device associated with a secondorganization, to obtain the new credit data, obtain the storageidentifier for the new credit data from the copy of the smart contract,use the storage identifier to obtain the new credit data from the set ofdistributed data sources, provide the new credit data to the deviceassociated with the second organization, and provide digital currencyassociated with the second organization to an account associated withthe first organization. The one or more processors may perform a groupof actions associated with obtaining additional new credit data from theset of distributed data sources or providing the additional new creditdata to the set of distributed data sources.

According to some possible implementations, a method may includereceiving, by a first node that is associated with a first organization,a storage identifier for new credit data associated with an individual.A distributed ledger and a set of distributed data sources may be usedto share the new credit data with a network of nodes that are associatedwith a group of organizations that are permitted to access the newcredit data. The storage identifier may be used to identify a storagelocation at which the new credit data is to be stored within the set ofdistributed data sources. The new credit data may be provided to the setof distributed data sources by a second node associated with a secondorganization of the group of organizations. The method may includeupdating, by the first node, a smart contract associated with theindividual to include the storage identifier for the new credit data.The method may include receiving, by the first node and from a deviceassociated with the first organization, a request for the new creditdata. The method may include obtaining, by the first node, the storageidentifier for the new credit data from the smart contract. Obtainingthe storage identifier from the smart contract may cause the smartcontract to provide digital currency associated with the firstorganization to an account associated with the second organization. Themethod may include obtaining, by the first node, the new credit data byusing the storage identifier to search the set of distributed datasources. The method may include providing, by the first node, the newcredit data to the device associated with the first organization. Themethod may include performing, by the first node, a group of actionsassociated with obtaining additional new credit data from the set ofdistributed data sources or providing the additional new credit data tothe set of distributed data sources.

According to some possible implementations, a non-transitorycomputer-readable medium may store one or more instructions that, whenexecuted by one or more processors, cause the one or more processors toreceive new credit data of an individual that has credit with a firstorganization. A blockchain and a set of distributed data sources may beused to share the new credit data with a network of nodes that areassociated with a group of organizations that are permitted to accessthe new credit data. The one or more instructions may cause the one ormore processors to provide a storage identifier for the new credit datato a smart contract associated with the individual. The smart contractmay be supported by the blockchain. The storage identifier may be usedto identify a storage location at which the new credit data is to bestored within the set of distributed data sources. The one or moreinstructions may cause the one or more processors to provide the newcredit data and the storage identifier to the set of distributed datasources. The new credit data may be stored in association with thestorage identifier. The one or more instructions may cause the one ormore processors to broadcast the storage identifier for the new creditdata to the network of nodes to cause a particular node, of the networkof nodes, to add the storage identifier for the new credit data to acopy of the smart contract that is accessible to the particular node.Broadcasting the storage identifier may permit the particular node to,based on a request for the new credit data by a second organization,obtain the storage identifier for the new credit data from the copy ofthe smart contract, use the storage identifier to obtain the new creditdata from the set of distributed data sources, provide the new creditdata to an interface associated with the second organization, andprovide digital currency associated with the second organization to anaccount associated with the first organization. The one or moreinstructions may cause the one or more processors to perform a group ofactions associated with obtaining additional new credit data from theset of distributed data sources and/or providing the additional newcredit data to the set of distributed data sources.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1G are diagrams of an example implementation described herein.

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, may be implemented.

FIG. 3 is a diagram of example components of one or more devices of FIG.2.

FIGS. 4-6 are flow charts of an example process for sharing credit dataof an individual among a network of nodes that have access to adistributed ledger, a smart contract associated with the individual, anda distributed file system.

DETAILED DESCRIPTION

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings may identify the same or similar elements.

A reporting agency may collect data relating to individuals, and a groupof organizations may pay the reporting agency to access the data. Forexample, a credit reporting agency may collect credit data ofindividuals, and a group of organizations (e.g., financial institutions)may pay the credit reporting agency to access the credit data. In thiscase, each organization may independently provide the credit data of theindividuals to the credit reporting agency, thus allowing the creditreporting agency to serve as a singular source of credit data, and tocharge organizations to access the credit data.

However, the credit reporting agency may not provide the organizationswith any consideration for initially providing the credit reportingagency with the credit data. Furthermore, providing credit data tocredit reporting agencies creates security and/or privacy concerns. Forexample, a credit reporting agency may resell the credit data of theindividual without the knowledge or consent of the individual or theorganization providing the credit data of the individual, may have asecurity breach that allows an unauthorized user to obtain the creditdata, and/or the like.

In some cases, a blockchain may be used to store credit data forindividuals. A blockchain is a distributed database that maintains acontinuously-growing list of records, called blocks, that may be linkedtogether to form a chain. Each block in the blockchain may contain atimestamp and a link to a previous block and/or transaction. The blocksmay be secured from tampering and revision.

Additionally, a blockchain may include a secure transaction ledgerdatabase shared by parties participating in an established, distributednetwork of computers. A blockchain may record a transaction (e.g., anexchange or transfer of information) that occurs in the network, therebyreducing or eliminating the need for trusted/centralized third parties.Further, the distributed ledger may correspond to a record of consensuswith a cryptographic audit trail that is maintained and validated by aset of independent computers.

However, using the blockchain to store credit data of individuals maycreate scalability issues when large quantities of credit data areconsidered. Furthermore, without an adequate system for incentivizingorganizations to continue to update the blockchain with the credit dataof individuals, the blockchain may not be a reliable source of updatedcredit data of individuals.

Some implementations described herein include a first node, of a networkof nodes, that is able to share credit data of an individual byutilizing a distributed ledger supported by a blockchain, a smartcontact associated with the individual, a distributed file system.Additionally, some implementations described herein may also provide amechanism for incentivizing organizations to use the distributed ledgerand the distributed file system to share the credit data, as describedfurther herein. In this way, the first node is able to facilitate thedistribution of the credit data in a manner that is secure, distributed,automated, and incentive-driven.

For example, security is provided by supporting the distributed ledgerwith a tamper-resistant data structure (e.g., the blockchain), byimplementing various forms of authentication, by restricting access tothe network of nodes to particular organizations or parties, and/or thelike. To provide a few particular examples, the distributed ledger mayimprove security by preserving an immutable record of the credit data,by using cryptographic links between blocks of the distributed ledger(e.g., reducing the potential for unauthorized tampering with the creditdata), and/or the like. Security is further improved as a result ofnodes that have access to the distributed ledger independently verifyingeach transaction that is added to the distributed ledger. Moreover, useof a distributed ledger also provides failover protection, in that thefirst node may continue to operate in a situation where one or moreother nodes that have access to the distributed ledger fail.

Furthermore, by incentivizing organizations to update the distributedfile system with new credit data, the credit data may serve as areliable indicator of credit worthiness of the individual. Stillfurther, the first node conserves processing resources and/or networkresources and/or memory resources. For example, the first node conservesprocessing resources and/or network resources that might otherwise beused to query a set of credit bureau data sources to obtain credit dataof the individual. As another example, by utilizing a distributed filesystem to store the credit data, the network of nodes improves inscalability, and conserves memory resources that might otherwise be usedto attempt to store the credit data on the blockchain.

FIGS. 1A-1G are diagrams of an example implementation 100 describedherein. For example, example implementation 100 may include a network ofnodes that are associated with a group of organizations that sharecredit data of an individual using a distributed ledger supported by ablockchain, a smart contract specific to the individual, a distributedfile system. Additionally, in some cases, the network of nodes mayimplement a mechanism for incentivizing the group of organizations touse the distributed ledger and the distributed file system to sharecredit data.

As shown in FIG. 1A, and by reference number 102, the credit data of theindividual may be shared among the group of organizations that arepermitted to access the credit data. The individual may have a credithistory with the group of organizations and/or may request credit fromthe group of organizations. The group of organizations may includefinancial institutions, lending institutions, organizations with datathat may be useful for determining a credit score (e.g., organizationsthat rate the individual, such as organizations that provideonline-purchasing platforms, ride sharing organizations, etc.), and/orthe like. In some cases, the group of organizations may be limited tolending organizations, may exclude credit reporting agencies, and/or thelike.

The credit data may include credit events data (e.g., data indicatingwhether a payment was made, whether a payment was timely, etc.), creditscoring data (e.g., a credit score determined by a particularorganization), data that may be used to determine a credit score (e.g.,data identifying an income, a number of open lines of credit, an amountof outstanding debt, a mortgage payment history, etc.), and/or the like.

In some implementations, the credit data of the individual may be sharedusing the network of nodes (shown as Node 1 through Node N). Forexample, the network of nodes may support the blockchain, which mayinclude a set of blocks that store the credit data and/or informationassociated with the credit data as blocks in the blockchain.

In some implementations, the smart contract for the individual may bestored as a block within the blockchain. In some implementations, dataincluded as part of the smart contract may be stored as separate blockswithin the blockchain. In some implementations, the network of nodes mayaccess the smart contract by searching a particular storage locationwithin the blockchain. In some implementations, each node in the networkof nodes may store a copy of the smart contract, as described furtherherein.

The smart contract may include information identifying a list oforganizations that the individual has given permission to access thecredit data, storage information for particular credit data, one or morefunctions associated with obtaining the credit data or providing newcredit data, an incentives function associated with creating incentivesfor the group of organizations to continue to use the network of nodesto obtain the credit data or to provide new credit data. The informationidentifying the list of organizations may include an organizationidentifier (ID) for an organization, a public key associated with eachorganization that has been given permission to access the credit data,information indicating a type of access (e.g., an organization may bepermitted to read the credit data, write (e.g., add new, modifyexisting, etc.) the credit data, etc.), and/or the like. The storageinformation for particular credit data may include a storage identifierthat serves as an association (e.g., a pointer) to a memory locationwhere the credit data is stored within the distributed file system(shown as Hashed Address 1 through Hashed Address M), as describedfurther herein.

The functions associated with obtaining the credit data or providing newcredit data may include a read function (e.g., to process requests byorganizations that request to read the credit data), a write function(e.g., to process requests by organizations that request to write thecredit data), and/or the like. The incentives function may require thattokens (e.g., cryptocurrency) be provided to perform the functionsassociated with obtaining the credit data or providing new credit data.For example, for an organization (e.g., a financial institution) to readparticular credit data, the organization may have to pay tokens toanother organization (e.g., another financial institution) that wrotethe particular credit data into the blockchain.

The distributed file system may be supported by the network of nodesand/or may be supported by one or more third-party organizations. Forexample, the blockchain may be unable to support large quantities ofcredit data (e.g., gigabytes of credit data, terabytes of credit data,etc.). In this case, the distributed file system may be used to handledata storage for the credit data, and may store the credit data usingone or more data structures, such as a tree (e.g., a binary search tree(BST), a red-black (RB) tree, a B-tree, etc.), a graph, a distributeddatabase, a hash table, a linked list, and/or the like. Additionally,the blockchain may store storage identifiers (e.g., hashed addresses)for particular credit data, where the storage identifiers serve aspointers to memory locations at which the particular credit data isstored within the distributed file system.

In this way, the individual and the group of organizations are able tosecurely share the credit data of the individual using the distributedledger, the smart contract, and the distributed file system.

As shown in FIG. 1B, and by reference number 104, a device associatedwith a first organization (shown as Device of Organization 1) mayprovide, to a first node, a request to access the credit data of theindividual. For example, the individual may have applied for credit withthe first organization, which may have caused the first organization torequest access to the credit data of the individual.

The request may include an organization ID for the first organization, apublic key associated with the first organization, one or more tokens,and/or the like. The public key may be part of a key pair (e.g., thepublic key and a corresponding private key) that are associated with thefirst organization, whereby the private key is only accessible to thefirst organization and may be used to decrypt data, and the public keymay be provided to other parties and may be used to encrypt data. Insome cases, the first organization may have to compensate the individualfor the credit data, in which case tokens may be provided as part of therequest.

As shown by reference number 106, the first node may interact with thedistributed file system to obtain encrypted credit data of theindividual. For example, to be approved for the credit, the individualmay instruct the first node to obtain the encrypted credit data. In thiscase, the first node may obtain the storage identifiers of the creditdata (e.g., the hashed addresses) from the smart contract, and may usethe storage identifiers to search the distributed file system to obtainthe encrypted credit data.

As shown by reference number 108, the first node may use a private keyto decrypt the credit data. For example, the first node may store aprivate key that is accessible only to the individual, which may be usedfor decrypting the credit data. The private key may be associated withone or more public keys, which may be distributed to organizations thatare permitted to access the credit data, and which may be used forencrypting the credit data, as described further herein.

In this way, the first node is able to receive a request for the creditdata of the individual, and is able to interact with the smart contractand the distributed file system to obtain the credit data.

As shown in FIG. 1C, and by reference number 110, the first node mayencrypt (i.e., re-encrypt) the credit data using the public key of thefirst organization. For example, the first node may use the public keythat was included in the request to encrypt the credit data.

As shown by reference number 112, the first node may generate a set ofstorage identifiers for the encrypted credit data. For example, thefirst node may execute a mapping function, such as a hash function, thatis able to generate a set of hash values for the credit data. Asdescribed above, a hash value may serve as a storage identifier (e.g.,an address) that is able to be used as a pointer to a memory locationwithin the distributed file system. In some cases, the first node maygenerate a single hash value, which may serve as a storage identifier toa memory location that may be used to identify all of the credit data.In some cases, the first node may generate a set of hash values, whereeach of the set of hash values may serve as storage identifiers torespective memory locations that may be used to identify correspondingportions of the credit data.

As shown by reference number 114, the first node may provide the set ofstorage identifiers and the encrypted credit data to the distributedfile system. As shown by reference number 116, the first node mayprovide the set of storage identifiers to be stored as part of the smartcontract of the individual. For example, the first node may have accessto a first copy of the smart contract of the individual, and may updatethe first copy of the smart contract with the set of storageidentifiers. Additionally, the first node may broadcast the set ofstorage identifiers to the network of nodes to allow each of the networkof nodes to update a local copy of the smart contract with the set ofstorage identifiers. Furthermore, the smart contract of the individualmay be used to store the set of storage identifiers in a list, wherebyeach storage identifier, of the set of storage identifiers, is anaddress to particular credit data (e.g., each credit event associatedwith the individual may have a different storage identifier).

In this way, the set of storage identifiers may be stored as part of thesmart contract, such that an organization with access to the smartcontract may be able to obtain and use the set of storage identifiers toidentify memory locations within the distributed file system that storethe encrypted credit data, as described further herein.

As shown in FIG. 1D, and by reference number 118, the first node mayprovide, to the device of the first organization, a notificationindicating that the request to access the credit data of the individualhas been granted. For example, the first organization may be added tothe list of organizations permitted to access the credit data (e.g.,which is stored as part of the smart contract).

Furthermore, the message granting the request may indicate that thefirst organization is permitted to utilize a read function of the smartcontract, which may be used to read the credit data. In some cases, thefirst organization may not be permitted to utilize a write function ofthe smart contract until the first organization provides the individualwith credit, as described further herein.

As shown by reference number 120, the device of the first organizationmay obtain the set of storage identifiers identifying addresses tomemory locations used to store the encrypted credit data. For example,the device of the first organization may search the smart contract toidentify the set of storage identifiers. In this case, the smartcontract may associate the set of storage identifiers with organizationidentifiers of organizations that provided particular credit data andwith public keys associated with the organizations.

In some implementations, rather than access the smart contract directly,the device associated with the first organization may be assigned aparticular node, and the particular node may obtain the set of storageidentifiers. For example, the device associated with the firstorganization may, after receiving access to the credit data, provide arequest for the credit data to the particular node. The request mayinclude an organization identifier associated with the firstorganization. In this case, the particular node may search the smartcontract to verify that the organization identifier is on the list oforganizations that are permitted to access the credit data and mayobtain the set of storage identifiers needed to search the distributedfile system for the credit data.

As shown by reference number 122, the device of the first organizationmay use the set of storage identifiers to search the distributed filesystem to obtain the encrypted credit data. For example, the credit datamay be stored as encrypted data within the distributed file system(e.g., which had been encrypted using the public key of the firstorganization), and the device of the first organization may use the setof storage identifiers to search the distributed file system to obtainthe encrypted credit data. In this case, the distributed file system mayuse a data structure that associates the set of storage identifiers withthe encrypted credit data and with organization identifiers fororganizations that provided particular credit data to the distributedfile system.

In some implementations, rather than access the distributed file systemdirectly, the device associated with the first organization may beassigned the particular node, and the particular node may obtain thecredit data. For example, as described above, the device associated withthe first organization may provide the request for the credit data tothe particular node, which may cause the particular node to obtain theset of storage identifiers. In this case, the particular node may usethe set of storage identifiers to search the distributed file system forthe credit data, and may provide the credit data to the deviceassociated with the first organization.

As shown by reference number 124, the device of the first organizationmay use a private key associated with the first organization to decryptthe credit data. For example, the first organization may have a privatekey, and, as described above, may have previously provided acorresponding public key to the first node (e.g., which the first nodeused to encrypt the credit data). In this case, the device of the firstorganization may use the private key to decrypt the credit data.

In this way, the device of the first organization is able to obtain thecredit data of the individual, which may be processed to determinewhether to grant the individual with credit.

As shown in FIG. 1E, and by reference number 126, the device of thefirst organization may grant the individual with credit. For example,the device associated with the organization may analyze the credit dataand may determine, based on the analysis, to grant the individual withcredit. As shown by reference number 128, the device of the firstorganization may provide, to the first node (or to another device oraccount associated with the individual), a notification indicating thatthe individual is being granted with credit.

As shown by reference number 130, the first node may permit the firstorganization to access the write function of the smart contract. Forexample, because the individual has been granted with credit, the firstorganization may have new credit data associated with the individualthat needs to be added to the blockchain (e.g., records of timelypayments, untimely payments, and/or the like). As such, the firstorganization may be permitted to access the write function of the smartcontract so that the first organization may add the new credit data tothe blockchain. As shown by reference number 132, the first node mayprovide the device of the first organization with a notificationindicating that access to the write function has been permitted.

In this way, the device of the first organization is able to use thewrite function of the smart contract to add new credit data to theblockchain, as described with regard to FIGS. 1F and 1G.

As shown in FIG. 1F, and by reference number 134, the device of thefirst organization may receive new credit data. For example, the deviceof the first organization may receive new credit data indicating thatthe individual opened a new account, made a timely payment, failed tomake a timely payment, and/or the like.

As shown by reference number 136, the device of the first organizationmay encrypt the new credit data using a public key. For example, thedevice of the first organization may encrypt the new credit data usingthe public key associated with the individual and/or public keysassociated with other institutions which have been granted write access,which may have been provided to the device associated with the firstorganization when the first organization was permitted to access theread function and/or the write function of the smart contract. In someimplementations, the device associated with the first organization mayencrypt the new credit data using the public key associated with thefirst organization. As shown by reference number 138, the device of thefirst organization may provide the encrypted new credit data to thefirst node.

As shown by reference number 140, the first node may decrypt the newcredit data. For example, the first node may use a private keyassociated with the individual or a private key associated with thefirst organization to decrypt the new credit data.

As shown by reference number 142, the first node may obtain, from thesmart contract, a set of public keys associated with organizations thatare permitted to access the new credit data. For example, the smartcontact may store a list of organization identifiers of organizationsthat are permitted to access the new credit data, and the list oforganization identifiers may be stored in association with the set ofpublic keys of the organizations. This may allow the first node tosearch (e.g., query) the smart contact to obtain the set of public keys.

As shown by reference number 144, the first node may encrypt the newcredit data and may generate a set of storage identifiers for the newcredit data. For example, the first node may encrypt a set of copies ofthe new credit data using the set of public keys, such that eachorganizations public key is used to create an encrypted copy of the newcredit data. In this case, the first node may execute a mappingfunction, such as a hash function (e.g., as described elsewhere herein),to generate a set of storage identifiers for the set of copies of thenew credit data.

As shown by reference number 146, the first node may provide the set ofstorage identifiers to the smart contract of the individual (e.g., to alocal copy of the smart contract that is accessible to the first node).For example, the smart contract may store the set of storage identifiersfor the encrypted new credit data in a manner that associates the set ofstorage identifiers with one or more identifiers associated with theorganizations (e.g., organization identifiers, public keys of theorganizations, etc.). As shown by reference number 148, the first nodemay provide the set of storage identifiers and the encrypted copies ofthe new credit data to the distributed file system.

In this way, the encrypted copies of the new credit data may be storedin association with the set of storage identifier, thereby allowingorganizations to use nodes to execute the read function of the smartcontract to identify memory locations of particular copies of encryptednew credit data. This may allow organizations to instruct nodes toreference the memory location to obtain the particular copies of theencrypted new credit data, as described further herein.

As shown in FIG. 1G, and by reference number 150, the first node maybroadcast the set of storage identifiers to the network of nodes (or toone or more nodes in the network of nodes). For example, the first nodemay search the smart contract to obtain organization identifiers andorganization addresses of nodes associated with particular organizationsthat are permitted to access the new credit data. In some cases, thefirst node may have already obtained the organization identifiers andorganization addresses (e.g., when the first node searched the smartcontract for the key of public keys). Next, the first node may broadcastthe set of storage identifiers to the addresses of nodes associated withthe particular organizations that are permitted to access the new creditdata.

In some implementations, nodes that receive the set of storageidentifiers may update local copies of the smart contract. For example,the nodes may update local copies of the smart contract to include theset of storage identifiers, such that organizations associated withthose nodes are able to obtain the set of storage identifiers forobtaining (e.g., reading) particular new credit data that may have beenprovided to the blockchain.

As shown by reference number 152, a second node that is associated witha second organization may interact with the smart contract (e.g., alocal copy of the smart contract) to request to obtain (e.g., read) thenew credit data. The request may include an organization identifierassociated with the second organization, tokens (e.g., digital currency,such as cryptocurrency) that may serve as payment for accessing the newcredit data, and/or the like. In this case, the network of nodes mayadhere to an agreement indicating that a certain amount of tokens mustbe provided to read credit data (and/or new credit data).

The tokens may be provided to an organization writing the credit data,which may create incentives for organizations to continue to add newcredit data to the blockchain of the individual. For example, for thefirst organization to obtain new credit data provided by otherorganizations, the first organization may need to first earn tokens byproviding new credit data to the blockchain. This ensures that theblockchain remains updated with current credit data of the individual.

As shown by reference number 154, the smart contract may execute theread function. For example, the smart contract may verify that thesecond organization is permitted to access the new credit data and/ormay verify that the second organization has provided a requisite amountof tokens. If the verifications succeed, the smart contract may executethe read function, which, as shown by reference number 156, may cause astorage identifier for a particular copy of the encrypted new creditdata to be provided to the second node. As shown by reference number158, the smart contract may provide the tokens to an account associatedwith the first organization. In this case, the first organization may bethe recipient of the tokens because the first organization provided thenew credit data.

In some cases, the request to read the new credit data may include anoffer of tokens (but not the actual tokens). In this case, the smartcontract may, after receiving the offer, interact with an accountassociated with the second organization and the account associated withthe first organization to orchestrate the transfer of tokens from theaccount associated with the second organization to the accountassociated with the first organization.

As shown by reference number 160, the second node may obtain, from thedistributed file system, the particular copy of the encrypted new creditdata. For example, the second node may use the storage identifier toidentify the memory location of a copy of the encrypted new credit datathat is associated with the second organization, and may search thememory location to obtain the copy of the encrypted new credit data. Asshown by reference number 162, the second node may decrypt the copy ofthe new credit data (e.g., using the private key associated with thesecond organization).

As shown by reference number 164, the second node may perform one ormore actions associated with the copy of the new credit data. Forexample, the second node may provide the copy of the new credit data fordisplay on an interface that is accessible to the second organizationand/or may provide the new credit data to a device associated with thesecond organization. This may allow employees or devices of the secondorganization to process the copy of the new credit data (e.g., to decidewhether to offer the individual additional credit, a new credit-relatedservice, and/or the like).

In some implementations, the network of nodes may continue to exchangenew credit data and tokens as the individual builds a credit history. Inthis way, the incentivization provided by the exchange of the new creditand the tokens ensures that the blockchain continues to be provided withup to date credit information of the individual.

In some implementations, one or more machine learning models may beutilized to improve performance with systems, processes, and/orfunctions described herein. For example, a node may train a machinelearning model on historical credit data (or may receive a trainedmachine learning model), such that the node is able to use the machinelearning model to determine a credit score for the individual, determinean amount of credit to grant the individual, determine a type of creditto offer the individual, and/or the like. Additionally, oralternatively, the node may train a machine learning model on historicalnetwork data, such that the machine learning model is able to makeoptimization decisions relating to storage of credit data. In this case,the machine learning model may be associated with the mapping function,such that the machine learning model may be used with the mappingfunction to output storage identifiers of memory locations that maximizestorage efficiency within the distributed file system.

In this way, the network of nodes is able to securely exchange creditdata of the individual. Additionally, by incentivizing organizations tocontinue to add new credit data, the blockchain of the individual willremain updated, thereby serving as a reliable indicator of creditworthiness of the individual. Furthermore, the network of nodesconserves processing resources and/or network resources and/or memoryresources. For example, a node conserves processing resources and/ornetwork resources that might otherwise be used to query a set of creditbureau data sources to obtain credit data of the individual. As anotherexample, by utilizing a distributed file system to store the creditdata, the node improves in scalability, and conserves memory resourcesthat might otherwise be used to attempt to store the credit data on theblockchain.

As indicated above, FIGS. 1A-1G are provided merely as examples. Otherexamples are possible and may differ from what was described with regardto FIGS. 1A-1G. For example, in some implementations, the network ofnodes may be implemented with a management node (e.g., a ledgermanagement platform). In this case, one or more techniques and/orfeatures that are described as being performed by the set of nodes maybe performed by the management node.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods described herein may be implemented. As shown in FIG. 2,environment 200 may include a node 210, a distributed data source 220, aledger management platform 230 hosted within a cloud computingenvironment 240, a user device 250, and/or a network 260. Devices ofenvironment 200 may interconnect via wired connections, wirelessconnections, or a combination of wired and wireless connections.

Node 210 includes one or more devices capable of receiving, generating,storing, processing, and/or providing information associated with creditof an individual. For example, node 210 may include a computing device(e.g., a desktop computer, a laptop computer, a tablet computer, ahandheld computer, a server device, etc.), a mobile phone (e.g., a smartphone, a radiotelephone, etc.), or a similar device.

In some implementations, a set of nodes 210 may be part of a networkthat is able to utilize a distributed ledger and/or a distributed filesystem to securely share credit data of an individual. In someimplementations, node 210 may be associated with an individual that hasa credit history. Additionally, or alternatively, node 210 may beassociated with an organization such as a financial institution. In someimplementations, node 210 may store a smart contract associated with anindividual. In this case, the smart contract may include a storageidentifier (e.g., a hashed value) that serves as a pointer to a memorylocation within a distributed file system supported by distributed datasource 220.

Distributed data source 220 includes one or more devices capable ofreceiving, generating, storing, processing, and/or providing informationassociated with credit of an individual. For example, distributed datasource 220 may include a computing device, such as a server, a desktopcomputer, a laptop computer, a tablet computer, a handheld computer, ora similar device. In some implementations, distributed data source 220may support a distributed file system that is used to store the creditdata of the individual. In some implementations, distributed data source220 may store encrypted credit data for the individual, and mayassociate the encrypted credit data with one or more storage identifiersand/or organization identifiers.

Ledger management platform 230 includes one or more devices capable ofreceiving, generating, storing, processing, and/or providing informationassociated with credit of an individual. For example, ledger managementplatform 230 may include a server or a group of servers. In someimplementations, ledger management platform 230 may perform one or moreactions described as being performed by node 210.

In some implementations, as shown, ledger management platform 230 may behosted in cloud computing environment 240. Notably, whileimplementations described herein describe ledger management platform 230as being hosted in cloud computing environment 240, in someimplementations, ledger management platform 230 may not be cloud-based(i.e., may be implemented outside of a cloud computing environment) ormay be partially cloud-based.

Cloud computing environment 240 includes an environment that hostsledger management platform 230. Cloud computing environment 240 mayprovide computation, software, data access, storage, etc. services thatdo not require end-user knowledge of a physical location andconfiguration of system(s) and/or device(s) that hosts ledger managementplatform 230. As shown, cloud computing environment 240 may include agroup of computing resources 235 (referred to collectively as “computingresources 235” and individually as “computing resource 235”).

Computing resource 235 includes one or more personal computers,workstation computers, server devices, or another type of computationand/or communication device. In some implementations, computing resource235 may host ledger management platform 230. The cloud resources mayinclude compute instances executing in computing resource 235, storagedevices provided in computing resource 235, data transfer devicesprovided by computing resource 235, etc. In some implementations,computing resource 235 may communicate with other computing resources235 via wired connections, wireless connections, or a combination ofwired and wireless connections.

As further shown in FIG. 2, computing resource 235 may include a groupof cloud resources, such as one or more applications (“APPs”) 235-1, oneor more virtual machines (“VMs”) 235-2, virtualized storage (“VSs”)235-3, one or more hypervisors (“HYPs”) 235-4, or the like.

Application 235-1 may include one or more software applications that maybe provided to or accessed by node 210 and/or distributed data source220. Application 235-1 may eliminate a need to install and execute thesoftware applications on these devices. For example, application 235-1may include software associated with ledger management platform 230and/or any other software capable of being provided via cloud computingenvironment 240. In some implementations, one application 235-1 maysend/receive information to/from one or more other applications 235-1,via virtual machine 235-2.

Virtual machine 235-2 may include a software implementation of a machine(e.g., a computer) that executes programs like a physical machine.Virtual machine 235-2 may be either a system virtual machine or aprocess virtual machine, depending upon use and degree of correspondenceto any real machine by virtual machine 235-2. A system virtual machinemay provide a complete system platform that supports execution of acomplete operating system (“OS”). A process virtual machine may executea single program, and may support a single process. In someimplementations, virtual machine 235-2 may execute on behalf of anotherdevice (e.g., node 210 and/or distributed data source 220), and maymanage infrastructure of cloud computing environment 240, such as datamanagement, synchronization, or long-duration data transfers.

Virtualized storage 235-3 may include one or more storage systems and/orone or more devices that use virtualization techniques within thestorage systems or devices of computing resource 235. In someimplementations, within the context of a storage system, types ofvirtualizations may include block virtualization and filevirtualization. Block virtualization may refer to abstraction (orseparation) of logical storage from physical storage so that the storagesystem may be accessed without regard to physical storage orheterogeneous structure. The separation may permit administrators of thestorage system flexibility in how the administrators manage storage forend users. File virtualization may eliminate dependencies between dataaccessed at a file level and a location where files are physicallystored. This may enable optimization of storage use, serverconsolidation, and/or performance of non-disruptive file migrations.

Hypervisor 235-4 may provide hardware virtualization techniques thatallow multiple operating systems (e.g., “guest operating systems”) toexecute concurrently on a host computer, such as computing resource 235.Hypervisor 235-4 may present a virtual operating platform to the guestoperating systems, and may manage the execution of the guest operatingsystems. Multiple instances of a variety of operating systems may sharevirtualized hardware resources.

User device 250 includes one or more devices capable of receiving,generating, storing, processing, and/or providing information associatedwith credit of an individual. For example, user device 250 may include acomputing device (e.g., a desktop computer, a laptop computer, a tabletcomputer, a handheld computer, a server device, etc.), a mobile phone(e.g., a smart phone, a radiotelephone, etc.), or a similar device. Insome implementations, user device 250 may be associated with anorganization, such as a financial institution, that is not part of theset of nodes 210, but that is requesting access to credit dataassociated with an individual.

Network 260 includes one or more wired and/or wireless networks. Forexample, network 260 may include a cellular network (e.g., a fifthgeneration (5G) network, a fourth generation (4G) network, such as along-term evolution (LTE) network, a third generation (3G) network, acode division multiple access (CDMA) network, a public land mobilenetwork (PLMN), a local area network (LAN), a wide area network (WAN), ametropolitan area network (MAN), a telephone network (e.g., the PublicSwitched Telephone Network (PSTN)), a private network, an ad hocnetwork, an intranet, the Internet, a fiber optic-based network, a cloudcomputing network, or the like, and/or a combination of these or othertypes of networks.

The number of devices and networks shown in FIG. 2 is provided as anexample. In practice, there may be additional devices and/or networks,fewer devices and/or networks, different devices and/or networks, ordifferently arranged devices and/or networks than those shown in FIG. 2.Furthermore, two or more devices shown in FIG. 2 may be implementedwithin a single device, or a single device shown in FIG. 2 may beimplemented as multiple, distributed devices. Additionally, one or moreof the devices of environment 200 may perform one or more functionsdescribed as being performed by another one or more devices ofenvironment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300may correspond to node 210, distributed data source 220, ledgermanagement platform 230, computing resource 235, and/or user device 250.In some implementations, node 210, distributed data source 220, ledgermanagement platform 230, computing resource 235, and/or user device 250may include one or more devices 300 and/or one or more components ofdevice 300. As shown in FIG. 3, device 300 may include a bus 310, aprocessor 320, a memory 330, a storage component 340, an input component350, an output component 360, and a communication interface 370.

Bus 310 includes a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 is acentral processing unit (CPU), a graphics processing unit (GPU), anaccelerated processing unit (APU), a microprocessor, a microcontroller,a digital signal processor (DSP), a field-programmable gate array(FPGA), an application-specific integrated circuit (ASIC), or anothertype of processing component. In some implementations, processor 320includes one or more processors capable of being programmed to perform afunction. Memory 330 includes a random access memory (RAM), a read onlymemory (ROM), and/or another type of dynamic or static storage device(e.g., a flash memory, a magnetic memory, an optical memory, etc.) thatstores information and/or instructions for use by processor 320.

Storage component 340 stores information and/or software related to theoperation and use of device 300. For example, storage component 340 mayinclude a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, a solid state disk, etc.), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of non-transitory computer-readable medium,along with a corresponding drive.

Input component 350 includes a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, amicrophone, etc.). Additionally, or alternatively, input component 350may include a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, an actuator,etc.). Output component 360 includes a component that provides outputinformation from device 300 (e.g., a display, a speaker, one or morelight-emitting diodes (LEDs), etc.).

Communication interface 370 includes a transceiver-like component (e.g.,a transceiver, a separate receiver and transmitter, etc.) that enablesdevice 300 to communicate with other devices, such as via a wiredconnection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 may permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 may include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a Wi-Fi interface, a cellular network interface, orthe like.

Device 300 may perform one or more processes described herein. Device300 may perform these processes in response to processor 320 executingsoftware instructions stored by a non-transitory computer-readablemedium, such as memory 330 and/or storage component 340. Acomputer-readable medium is defined herein as a non-transitory memorydevice. A memory device includes memory space within a single physicalstorage device or memory space spread across multiple physical storagedevices.

Software instructions may be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 may causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry may be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 may include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3. Additionally, or alternatively, aset of components (e.g., one or more components) of device 300 mayperform one or more functions described as being performed by anotherset of components of device 300.

FIG. 4 is a flow chart of an example process 400 for sharing credit dataof an individual among a network of nodes that have access to adistributed ledger, a smart contract associated with the individual, anda distributed file system. In some implementations, one or more processblocks of FIG. 4 may be performed by a device, such as a first node(e.g., node 210). In some implementations, one or more process blocks ofFIG. 4 may be performed by another device or a group of devices separatefrom or including the first node, such as another node, a distributeddata source (e.g., distributed data source 220), a ledger managementplatform (e.g., ledger management platform 230), and/or a user device(e.g., user device 250).

As shown in FIG. 4, process 400 may include receiving new credit data ofan individual that has credit with a first organization, wherein adistributed ledger and a set of distributed data sources are to be usedto share the new credit data with a network of nodes that are associatedwith a group of organizations that are permitted to access the newcredit data (block 410). For example, the first node (e.g., usingprocessor 320, input component 350, communication interface 370, etc.)may receive new credit data of an individual that has credit with afirst organization, as described above with regard to FIGS. 1A-1G. Insome implementations, a distributed ledger and a set of distributed datasources may be used to share the new credit data with a network of nodesthat are associated with a group of organizations that are permitted toaccess the new credit data.

As further shown in FIG. 4, process 400 may include generating a storageidentifier for the new credit data by executing a mapping function,wherein the storage identifier is to identify a storage location atwhich the new credit data is to be stored within the set of distributeddata sources (block 420). For example, the first node (e.g., usingprocessor 320, storage component 340, etc.) may generate a storageidentifier for the new credit data by executing a mapping function, asdescribed above with regard to FIGS. 1A-1G. In some implementations, thestorage identifier may identify a storage location at which the newcredit data is to be stored within the set of distributed data sources.

As further shown in FIG. 4, process 400 may include providing thestorage identifier for the new credit data to a smart contractassociated with the individual, wherein the smart contract is supportedby the distributed ledger (block 430). For example, the first node(e.g., using processor 320, output component 360, communicationinterface 370, etc.) may provide the storage identifier for the newcredit data to a smart contract associated with the individual, asdescribed above with regard to FIGS. 1A-1G. In some implementations, thesmart contract may be supported by the distributed ledger.

As further shown in FIG. 4, process 400 may include providing the newcredit data and the storage identifier to the set of distributed datasources, wherein the new credit data is stored in association with thestorage identifier (block 440). For example, the first node (e.g., usingprocessor 320, output component 360, communication interface 370, etc.)may provide the new credit data and the storage identifier to the set ofdistributed data sources, as described above with regard to FIGS. 1A-1G.In some implementations, the new credit data may be stored inassociation with the storage identifier.

As further shown in FIG. 4, process 400 may include broadcasting thestorage identifier for the new credit data to the network of nodes tocause a second node, of the network of nodes, to provide the storageidentifier for the new credit data to a copy of the smart contract thatis accessible to the second node, wherein broadcasting the storageidentifier permits the second node, based on a request from a deviceassociated with a second organization, to obtain the new credit data,obtain the storage identifier for the new credit data from the copy ofthe smart contract, use the storage identifier to obtain the new creditdata from the set of distributed data sources, provide the new creditdata to the device associated with the second organization, and providedigital currency associated with the second organization to an accountassociated with the first organization (block 450). For example, thefirst node (e.g., using processor 320, output component 360,communication interface 370, etc.) may broadcast the storage identifierfor the new credit data to the network of nodes to cause a second node,of the network of nodes, to provide the storage identifier for the newcredit data to a copy of the smart contract that is accessible to thesecond node, as described above with regard to FIGS. 1A-1G.

In some implementations, the first node broadcasting the storageidentifier may permit the second node, based on a request from a deviceassociated with a second organization (e.g., the user device), to obtainthe new credit data, obtain the storage identifier for the new creditdata from the copy of the smart contract, use the storage identifier toobtain the new credit data from the set of distributed data sources,provide the new credit data to the device associated with the secondorganization, and provide digital currency associated with the secondorganization to an account associated with the first organization.

As further shown in FIG. 4, process 400 may include performing a groupof actions associated with obtaining additional new credit data from theset of distributed data sources or providing the additional new creditdata to the set of distributed data sources (block 460). For example,the first node (e.g., using processor 320, memory 330, storage component340, input component 350, output component 360, communication interface370, etc.) may perform a group of actions associated with obtainingadditional new credit data from the set of distributed data sources orproviding the additional new credit data to the set of distributed datasources, as described above with regard to FIGS. 1A-1G.

Process 400 may include additional implementations, such as any singleimplementation or any combination of implementations described belowand/or in connection with one or more other processes describedelsewhere herein.

In some implementations, the smart contract may be used exclusively forthe individual. In some implementations, the smart contract may includedata identifying the group of organizations that are permitted to accessthe new credit data, a set of storage identifiers identifying a set ofstorage locations associated with historical credit data of theindividual, a first function associated with adding the new credit datato the set of distributed data sources, a second function associatedwith obtaining the new credit data from the set of distributed datasources, a third function associated with providing incentives to thegroup of organizations to use the network of nodes to interact with thesmart contract to execute the first function and the second function.

In some implementations, while generating the storage identifier, thefirst node may generate, using a content addressing technique, acryptographic hash value identifying the storage location at which thenew credit data is to be stored within the set of distributed datasources. Additionally, the cryptographic hash value may be used as thestorage identifier for the new credit data.

In some implementations, the device associated with the firstorganization may only be permitted to access the new credit data if anorganization identifier for the first organization is stored by a datastructure associated with the smart contract. Additionally, theorganization identifier for the first organization may be stored by thedata structure only after a particular amount of the digital currencyassociated with the first organization is provided to an accountassociated with the individual.

In some implementations, while performing the group of actions, thefirst node may obtain the additional new credit data from the set ofdistributed data sources. In this case, another node in the network ofnodes may have provided the additional new credit data to the set ofdistributed data sources. Additionally, the other node may be associatedwith a particular organization. Additionally, obtaining the additionalnew credit data may cause the digital currency to be provided to anaccount associated with the particular organization.

In some implementations, while performing the group of actions, thefirst node may provide the additional new credit data to the set ofdistributed data sources to cause nodes associated with otherorganizations to obtain the additional new credit data in exchange for aparticular amount of the digital currency. In some implementations,while performing the group of actions, the first node may automaticallyobtain the additional new credit data from the set of distributed datasources based on determining that the account associated with the firstorganization has a particular amount of the digital currency.

Although FIG. 4 shows example blocks of process 400, in someimplementations, process 400 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 4. Additionally, or alternatively, two or more of theblocks of process 400 may be performed in parallel.

FIG. 5 is a call flow diagram of an example call flow 500 for sharingcredit data of an individual among a network of nodes that have accessto a distributed ledger, a smart contract associated with theindividual, and a distributed file system. In some implementations, oneor more process blocks of FIG. 5 may be performed by a device, such as afirst node (e.g., node 210). In some implementations, one or moreprocess blocks of FIG. 5 may be performed by another device or a groupof devices separate from or including the first node, such as anothernode, a distributed data source (e.g., distributed data source 220), aledger management platform (e.g., ledger management platform 230),and/or a user device (e.g., user device 250).

As shown in FIG. 5, process 500 may include receiving, by a first nodeassociated with a first organization, a storage identifier for newcredit data associated with an individual, wherein a distributed ledgerand a set of distributed data sources are used to share the new creditdata with a network of nodes that are associated with a group oforganizations that are permitted to access the new credit data, whereinthe storage identifier is used to identify a storage location at whichthe new credit data is to be stored within the set of distributed datasources, wherein the new credit data has been provided to the set ofdistributed data sources by a second node associated with a secondorganization of the group of organizations (block 510). For example, thefirst node may receive (e.g., using processor 320, input component 350,communication interface 370, etc.), by a first node that is associatedwith a first organization, a storage identifier for new credit dataassociated with an individual, as described above with regard to FIGS.1A-1G.

In some implementations, a distributed ledger and a set of distributeddata sources may be used to share the new credit data with a network ofnodes that are associated with a group of organizations that arepermitted to access the new credit data. In some implementations, thestorage identifier may be used to identify a storage location at whichthe new credit data is to be stored within the set of distributed datasources. In some implementations, the new credit data may have beenprovided to the set of distributed data sources by a second nodeassociated with a second organization of the group of organizations.

As shown in FIG. 5, process 500 may include updating a smart contractassociated with the individual to include the storage identifier for thenew credit data (block 520). For example, the first node (e.g., usingprocessor 320, output component 360, communication interface 370, etc.)may update a smart contract associated with the individual to includethe storage identifier for the new credit data, as described above withregard to FIGS. 1A-1G.

As shown in FIG. 5, process 500 may include receiving, from a deviceassociated with the first organization, a request for the new creditdata (block 530). For example, the first node (e.g., using processor320, input component 350, communication interface 370, etc.) mayreceive, from a device associated with the first organization (e.g., theuser device), a request for the new credit data, as described above withregard to FIGS. 1A-1G.

As shown in FIG. 5, process 500 may include obtaining, by the firstnode, the storage identifier for the new credit data from the smartcontract (block 540). For example, the first node (e.g., using processor320, input component 350, output component 360, communication interface370, etc.) may obtain the storage identifier for the new credit datafrom the smart contract, as described above with regard to FIGS. 1A-1G.In some implementations, the first node obtaining the storage identifierfrom the smart contract may cause the smart contract to provide digitalcurrency associated with the first organization to an account associatedwith the second organization.

As shown in FIG. 5, process 500 may include obtaining the new creditdata by using the storage identifier to search the set of distributeddata sources (block 550). For example, the first node (e.g., usingprocessor 320, input component 350, output component 360, communicationinterface 370, etc.) may obtain the new credit data by using the storageidentifier to search the set of distributed data sources, as describedabove with regard to FIGS. 1A-1G.

As shown in FIG. 5, process 500 may include providing the new creditdata to the device associated with the first organization (block 560).For example, the first node (e.g., using processor 320, output component360, communication interface 370, etc.) may provide the new credit datato the device associated with the first organization, as described abovewith regard to FIGS. 1A-1G.

As shown in FIG. 5, process 500 may include performing a group ofactions associated with obtaining additional new credit data from theset of distributed data sources or providing the additional new creditdata to the set of distributed data sources (block 570). For example,the first node (e.g., using processor 320, memory 330, storage component340, input component 350, output component 360, communication interface370, etc.) may perform a group of actions associated with obtainingadditional new credit data from the set of distributed data sources orproviding the additional new credit data to the set of distributed datasources, as described above with regard to FIGS. 1A-1G.

Process 500 may include additional implementations, such as any singleimplementation or any combination of implementations described belowand/or in connection with one or more other processes describedelsewhere herein.

In some implementations, the device associated with the firstorganization may only be permitted to access the new credit data if anorganization identifier for the first organization is stored by a datastructure associated with the smart contract. Additionally, theorganization identifier for the first organization may be stored by thedata structure only after a particular amount of the digital currencyassociated with the first organization is provided to an accountassociated with the individual.

In some implementations, the smart contract may be exclusive to theindividual. Additionally, the smart contract may include dataidentifying the group of organizations that are permitted to access thenew credit data, a set of storage identifiers identifying a set ofstorage locations associated with historical credit data of theindividual, a first function associated with providing the new creditdata to the set of distributed data sources, and/or a second functionassociated with obtaining the new credit data from the set ofdistributed data sources, wherein the second function requires that aparticular amount of the digital currency be provided to obtain the newcredit data.

In some implementations, the new credit data obtained from the set ofdistributed data sources may have been encrypted using a first keyassociated with the individual. Additionally, the first node may decryptthe new credit data using a second key associated with the individual.Additionally, the first node may encrypt the new credit data using afirst key associated with the first organization. Additionally, whileproviding the new credit data to the device associated with the firstorganization, the first node may provide the new credit data that hasbeen encrypted using the first key associated with the firstorganization to permit the device associated with the first organizationto decrypt the new credit data using a second key associated with thefirst organization.

In some implementations, the smart contract may provide the digitalcurrency to the account associated with the second organization byexecuting one or more functions associated with creating incentives forthe group of organizations to use the network of nodes to continue toadd the additional new credit data to the set of distributed datasources.

In some implementations, while performing the group of actions, thefirst node may obtain the additional new credit data from the set ofdistributed data sources to cause a particular amount of the digitalcurrency to be provided to an account associated with a thirdorganization that has used a third node to provide the additional newcredit data to the set of distributed data sources. In someimplementations, while performing the group of actions, the first nodemay provide the additional new credit data to the set of distributeddata sources. Additionally, providing the additional new credit data tothe set of distributed data sources may permit other organizations touse the network of nodes to obtain the additional new credit data inexchange for a particular amount of the digital currency.

Although FIG. 5 shows example blocks of process 500, in someimplementations, process 500 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 5. Additionally, or alternatively, two or more of theblocks of process 500 may be performed in parallel.

FIG. 6 is a call flow diagram of an example call flow 600 for sharingcredit data of an individual among a network of nodes that have accessto a distributed ledger, a smart contract associated with theindividual, and a distributed file system. In some implementations, oneor more process blocks of FIG. 6 may be performed by a device, such as afirst node (e.g., node 210). In some implementations, one or moreprocess blocks of FIG. 6 may be performed by another device or a groupof devices separate from or including the first node, such as anothernode, a distributed data source (e.g., distributed data source 220), aledger management platform (e.g., ledger management platform 230),and/or a user device (e.g., user device 250).

As shown in FIG. 6, process 600 may include receiving new credit data ofan individual that has credit with a first organization, wherein ablockchain and a set of distributed data sources are to be used to sharethe new credit data with a network of nodes that are associated with agroup of organizations that are permitted to access the new credit data(block 610). For example, the first node (e.g., using processor 320,input component 350, communication interface 370, etc.) may receive newcredit data of an individual that has credit with a first organization,as described above with regard to FIGS. 1A-1G. In some implementations,a blockchain and a set of distributed data sources may be used to sharethe new credit data with a network of nodes that are associated with agroup of organizations that are permitted to access the new credit data.

As shown in FIG. 6, process 600 may include providing a storageidentifier for the new credit data to a smart contract associated withthe individual, wherein the smart contract is supported by theblockchain, and wherein the storage identifier is used to identify astorage location at which the new credit data is to be stored within theset of distributed data sources (block 620). For example, the first node(e.g., using processor 320, output component 360, communicationinterface 370, etc.) may provide a storage identifier for the new creditdata to a smart contract associated with the individual, as describedabove with regard to FIGS. 1A-1G. In some implementations, the smartcontract may be supported by the blockchain. In some implementations,the storage identifier may be used to identify a storage location atwhich the new credit data is to be stored within the set of distributeddata sources.

As shown in FIG. 6, process 600 may include providing the new creditdata and the storage identifier to the set of distributed data sources(block 630). For example, the first node (e.g., using processor 320,output component 360, communication interface 370, etc.) may provide thenew credit data and the storage identifier to the set of distributeddata sources, as described above with regard to FIGS. 1A-1G. In someimplementations, the new credit data may be stored in association withthe storage identifier.

As shown in FIG. 6, process 600 may include broadcasting the storageidentifier for the new credit data to the network of nodes to cause aparticular node, of the network of nodes, to add the storage identifierfor the new credit data to a copy of the smart contract that isaccessible to the particular node, wherein broadcasting the storageidentifier permits the particular node to, based on a request for thenew credit data by a second organization, obtain the storage identifierfor the new credit data from the copy of the smart contract, use thestorage identifier to obtain the new credit data from the set ofdistributed data sources, provide the new credit data to an interfaceassociated with the second organization, and provide digital currencyassociated with the second organization to an account associated withthe first organization (block 640). For example, the first node (e.g.,using processor 320, output component 360, communication interface 370,etc.) may broadcast the storage identifier for the new credit data tothe network of nodes to cause a particular node, of the network ofnodes, to add the storage identifier for the new credit data to a copyof the smart contract that is accessible to the particular node, asdescribed above with regard to FIGS. 1A-1G.

In some implementations, broadcasting the storage identifier may permitthe particular node to, based on a request for the new credit data by asecond organization, obtain the storage identifier for the new creditdata from the copy of the smart contract, use the storage identifier toobtain the new credit data from the set of distributed data sources,provide the new credit data to an interface associated with the secondorganization, and provide digital currency associated with the secondorganization to an account associated with the first organization.

As shown in FIG. 6, process 600 may include performing a group ofactions associated with obtaining additional new credit data from theset of distributed data sources and/or providing the additional newcredit data to the set of distributed data sources (block 650). Forexample, the first node (e.g., using processor 320, memory 330, storagecomponent 340, input component 350, output component 360, communicationinterface 370, etc.) may perform a group of actions associated withobtaining additional new credit data from the set of distributed datasources and/or providing the additional new credit data to the set ofdistributed data sources, as described above with regard to FIGS. 1A-1G.

Process 600 may include additional implementations, such as any singleimplementation or any combination of implementations described belowand/or in connection with one or more other processes describedelsewhere herein.

In some implementations, the first organization may only be permitted touse the network of nodes to access the new credit data if anorganization identifier for the first organization is stored by a datastructure associated with the smart contract. Additionally, theorganization identifier for the first organization may be added to thedata structure only after a particular amount of the digital currencyassociated with the first organization is provided to an accountassociated with the individual.

In some implementations, the first node may generate, after receivingthe new credit data, the storage identifier for the new credit data byusing a content addressing technique to generate a cryptographic hashvalue identifying the storage location at which the new credit data isto be stored within the set of distributed data sources. Additionally,the cryptographic hash value may be used as the storage identifier forthe new credit data. In some implementations, the smart contract may beused exclusively for the individual.

In some implementations, while performing the group of actions, thefirst node may obtain the additional new credit data from the set ofdistributed data sources to cause a particular amount of the digitalcurrency to be provided to an account associated with a thirdorganization that has added the additional new credit data to the set ofdistributed data sources. In some implementations, while performing thegroup of actions, the first node may provide the additional new creditdata to the set of distributed data sources to cause nodes associatedwith other organizations to obtain the additional new credit data inexchange for a particular amount of the digital currency.

Although FIG. 6 shows example blocks of process 600, in someimplementations, process 600 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 6. Additionally, or alternatively, two or more of theblocks of process 600 may be performed in parallel.

In this way, the first node is able to facilitate the distribution ofthe credit data in a manner that is secure, distributed, automated, andincentive-driven.

For example, security is provided by supporting the distributed ledgerwith a tamper-resistant data structure (e.g., the blockchain), byimplementing various forms of authentication, by restricting access tothe network of nodes to particular organizations or parties, and/or thelike. To provide a few particular examples, the distributed ledger mayimprove security by preserving an immutable record of the credit data,by using cryptographic links between blocks of the distributed ledger(e.g., reducing the potential for unauthorized tampering with the creditdata), and/or the like. Security is further improved as a result ofnodes that have access to the distributed ledger independently verifyingeach transaction that is added to the distributed ledger. Moreover, useof a distributed ledger also provides failover protection, in that thefirst node may continue to operate in a situation where one or moreother nodes that have access to the distributed ledger fail.

Furthermore, by incentivizing organizations to update the distributedfile system with new credit data, the credit data may serve as areliable indicator of credit worthiness of the individual. Stillfurther, the first node conserves processing resources and/or networkresources and/or memory resources. For example, the first node conservesprocessing resources and/or network resources that might otherwise beused to query a set of credit bureau data sources to obtain credit dataof the individual. As another example, by utilizing a distributed filesystem to store the credit data, the network of nodes improves inscalability, and conserves memory resources that might otherwise be usedto attempt to store the credit data on the blockchain.

The foregoing disclosure provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theimplementations.

As used herein, the term component is intended to be broadly construedas hardware, firmware, or a combination of hardware and software.

Some implementations are described herein in connection with thresholds.As used herein, satisfying a threshold may refer to a value beinggreater than the threshold, more than the threshold, higher than thethreshold, greater than or equal to the threshold, less than thethreshold, fewer than the threshold, lower than the threshold, less thanor equal to the threshold, equal to the threshold, or the like.

It will be apparent that systems and/or methods, described herein, maybe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features may be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below may directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and may be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related andunrelated items, etc.), and may be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” or the like are intended to be open-ended terms. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

What is claimed is:
 1. A method, comprising: receiving, by a first node,new credit data associated with an individual that has credit with afirst organization, wherein the new credit data has been provided to aset of distributed data sources by a second node associated with asecond organization; updating, by the first node, a smart contractassociated with the individual to include information associated withthe new credit data; and performing, by the first node, one or moreactions associated with obtaining additional new credit data from theset of distributed data sources or providing the additional new creditdata to the set of distributed data sources.
 2. The method of claim 1,further comprising: receiving, from a device associated with the firstorganization, a request for the new credit data; obtaining, by the firstnode, the information associated with the new credit data from the smartcontract, wherein the new credit data is obtained using a storageidentifier to search the set of distributed data sources; and providing,by the first node, the new credit data to the device associated with thefirst organization.
 3. The method of claim 2, wherein updating the smartcontract comprises: updating the smart contract with the storageidentifier.
 4. The method of claim 1, further comprising: obtaining thenew credit data by using a storage identifier to search the set ofdistributed data sources; and broadcasting the storage identifier forthe new credit data to cause the second node to provide the storageidentifier for the new credit data to a copy of the smart contract thatis accessible to the second node.
 5. The method of claim 1, furthercomprising: obtaining a storage identifier for the new credit data fromthe smart contract to cause the smart contract to provide digitalcurrency associated with the first organization to an account associatedwith the second organization.
 6. The method of claim 1, furthercomprising: generating, after receiving the new credit data, a storageidentifier for the new credit data by using a content addressingtechnique to generate a cryptographic hash value identifying a storagelocation at which the new credit data is to be stored within the set ofdistributed data sources.
 7. The method of claim 1, wherein the smartcontract includes one or more of: data identifying a group oforganizations that are permitted to access the new credit data, a set ofstorage identifiers identifying a set of storage locations associatedwith historical credit data of the individual, a first functionassociated with adding the new credit data to the set of distributeddata sources, a second function associated with obtaining the new creditdata from the set of distributed data sources, or third functionassociated with providing incentives to the group of organizations touse a network of nodes to interact with the smart contract to executethe first function and the second function, the group of organizationsincluding the first organization and the second organization, and thenetwork of nodes including the first node and the second node.
 8. Afirst node, comprising: one or more memories; and one or moreprocessors, communicatively connected to the one or more memories, to:receive new credit data associated with an individual that has creditwith a first organization, wherein the new credit data has been providedto a set of distributed data sources by a second node associated with asecond organization; update a smart contract associated with theindividual to include information associated with the new credit data;and perform an action associated with a copy of the new credit data andthe set of distributed data sources.
 9. The first node of claim 8,wherein the one or more processors are further to: broadcast a storageidentifier to permit the second node to provide digital currencyassociated with the second organization to an account associated withthe first organization.
 10. The first node of claim 8, wherein the oneor more processors are further to: receive, from a device associatedwith the first organization, a request for the new credit data; obtainthe information associated with the new credit data from the smartcontract; obtain the new credit data by using a storage identifier tosearch the set of distributed data sources; and provide the new creditdata to the device associated with the first organization.
 11. The firstnode of claim 10, wherein the one or more processors, when updating thesmart contract, are to: update the smart contract with the storageidentifier.
 12. The first node of claim 8, wherein the one or moreprocessors are further to: obtain the new credit data by using a storageidentifier to search the set of distributed data sources; and broadcastthe storage identifier for the new credit data to cause the second nodeto provide the storage identifier for the new credit data to a copy ofthe smart contract that is accessible to the second node.
 13. The firstnode of claim 8, wherein the one or more processors are further to:obtain a storage identifier for the new credit data from the smartcontract to cause the smart contract to provide digital currencyassociated with the first organization to an account associated with thesecond organization.
 14. The first node of claim 8, wherein the smartcontract is used exclusively for the individual and includes a functionassociated with obtaining the new credit data from the set ofdistributed data sources. wherein the function requires that aparticular amount of digital currency be provided to obtain the newcredit data.
 15. A non-transitory computer-readable medium storinginstructions, the instructions comprising: one or more instructionsthat, when executed by one or more processors, cause the one or moreprocessors of a first node to: receive new credit data associated withan individual that has credit with a first organization, wherein the newcredit data has been provided to a set of distributed data sources by asecond node associated with a second organization; provide informationassociated with the new credit data to a smart contract associated withthe individual; and perform an action associated with additional newcredit data and the set of distributed data sources.
 16. Thenon-transitory computer-readable medium of claim 15, wherein the one ormore instructions, when executed by the one or more processors, furthercause the one or more processors to: store the smart contract as a blockwithin a blockchain.
 17. The non-transitory computer-readable medium ofclaim 15, wherein the first organization includes one of: a financialinstitution, a lending institution, or an organization with data thatmay be useful for determining a credit score.
 18. The non-transitorycomputer-readable medium of claim 15, wherein the one or moreinstructions, when executed by the one or more processors, further causethe one or more processors to: obtain the new credit data by using astorage identifier to search the set of distributed data sources; andbroadcast the storage identifier for the new credit data to cause thesecond node to provide the storage identifier for the new credit data toa copy of the smart contract that is accessible to the second node. 19.The non-transitory computer-readable medium of claim 15, wherein the oneor more instructions, when executed by the one or more processors,further cause the one or more processors to: obtain a storage identifierfor the new credit data from the smart contract to cause the smartcontract to provide digital currency associated with the firstorganization to an account associated with the second organization. 20.The non-transitory computer-readable medium of claim 15, wherein thesmart contract is used exclusively for the individual and includes afunction associated with obtaining the new credit data from the set ofdistributed data sources. wherein the function requires that aparticular amount of digital currency be provided to obtain the newcredit data.